Software defined networks are a form of a physical network virtualization in which the control plane, i.e. a communication plane for controlling the physical network is separated from a data communication plane. This enables disjoint tasks of physical network control and data transport via the physical network.
More specifically in a software defined network, abbreviated with SDN, a router for routing data traffic is controlled for example via an external control element usually called network operating system or simply controller. The controller instructs the router or the routers of the network, for example switches, of their tasks, i.e. what to do with which data packet. So called (network) features—sometimes also called network apps—are built on top of the controller and implement network logic and functionality, for example routing. A dedicated control channel is used for exchanging control traffic between the controller and the routers.
However, such a software defined network has some disadvantages. One of the disadvantages is, that the control channel between the data plane and the control plane has usually a limited capacity both in terms of bandwidth and in terms of CPU utilization of the controller and in particular also on routers. A further disadvantage is, that the interoperability with networks other than software defined networks or networks under control of a different controller is difficult, since different network control protocols have to be emulated by a feature. This means that control data packets for these (legacy) protocols have to be sent to the responsible feature via the dedicated control channel. This requires an encapsulation of the original control packets for the legacy protocol into a SDN control packet. The feature then takes appropriate actions and eventually is also sending packets out through the network via the dedicated control channel. This also needs bandwidth and CPU resources. For example: For each type of a legacy control packet the controller inserts corresponding rules into the switches with assigning the output port for these packets being the controller. The router thus encapsulates those legacy control packets into SDN control packets and sends them to the controller via the dedicated control channel. The controller then extracts the legacy control packets and uses these legacy control packets to update its internal routing state and to reconfigure the routers accordingly if necessary. Depending on the respective legacy control protocol, the controller sends legacy control packets back into the network.